﻿using NicoView.Model.Share.Speech;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NicoView.Model.Speech
{
    public abstract class SpeacherProviderBase:ISpeacherProvider
    {
        public abstract string Name { get;}

        public string Group { get; protected set; }

        public SpeacherProviderBase()
        {
            Speacher = default(ISpeacher);
        }

        protected ISpeacher Speacher { get; set; }

        public  bool Created
        {
            get
            {
                return Speacher != null;
            }
        }

        public abstract ISpeacher GetInstance();

        public override string ToString()
        {
            return Name;
        }

        public abstract SpeacherProviderBase Copy();
    }


}
